package nyist.media.repository;

import nyist.media.entity.admin.Log;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

/**
 * 操作日志
 *
 * @author : dcf
 * @date : 2019/3/11
 */

public interface LogRepository extends JpaRepository<Log, Long>, JpaSpecificationExecutor<Log> {

    /**
     * 分页查询操作日志
     *
     * @param pageRequest 分页对象
     * @param keyword     搜索关键字
     * @return 日志列表
     */
    default Page<Log> findAll(PageRequest pageRequest, String keyword) {
        if (StringUtils.isEmpty(keyword)) {
            return findAll(pageRequest);
        }
        return findAll((root, cq, cb) ->
                (cb.or(cb.like(root.get("operator"), "%" + keyword + "%"), cb.like(root.get("ip"), "%" + keyword + "%"))), pageRequest);
    }
}

